/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.comandos.adrs;

import br.ufc.quixada.adrs.interfaces.Comando;
import br.ufc.quixada.adrs.model.QuestionarioQualitativo;
import br.ufc.quixada.adrs.model.Visita;
import br.ufc.quixada.adrs.util.Msg;
import br.ufc.quixada.adrs.util.UtilAdrs;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Caio
 */
public class CmdAddQuestionarioQualitativo implements Comando {

    public String executa(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        if (request.getParameter("concluded").equals("false")) {
            Visita v = (Visita) session.getAttribute("visita");
            v.setData(UtilAdrs.treatToDate(request.getParameter("data")));
            if (v.getData() == null) {
                session.setAttribute("erro", Msg.INPUT_ERROR_WRONG_VISITA_DATE_FORMAT);
                return "/adrs/adrs_add_visita.jsp";
            }
            return "/adrs/adrs_add_quest_qualitativo.jsp";
        } else {

            Visita v = (Visita) session.getAttribute("visita");

            QuestionarioQualitativo qql = new QuestionarioQualitativo();
            v.setQuestionarioQualitativo(qql);
            qql.setVisita(v);

            //get parameters
            if (request.getParameter("AG1") != null) {
                qql.getAvaliacaoGeral().set1(Integer.parseInt(request.getParameter("AG1")));
            } else {
                qql.getAvaliacaoGeral().set1(0);
            }
            if (request.getParameter("AG2") != null) {
                qql.getAvaliacaoGeral().set2(Integer.parseInt(request.getParameter("AG2")));
            } else {
                qql.getAvaliacaoGeral().set2(0);
            }

            boolean erroDeValidacao = false;

            String temp = null;
            if (!request.getParameter("AG3").equals("")) {
                temp = request.getParameter("AG3");
                temp = temp.replace(',', '.');
                if (UtilAdrs.verificaNumeroReal(temp)) {
                    if (Double.parseDouble(temp) < 0D || Double.parseDouble(temp) > 100D) {
                        erroDeValidacao = true;
                        qql.getAvaliacaoGeral().set3(0D);
                    } else {
                        qql.getAvaliacaoGeral().set3(Double.parseDouble(temp));
                    }
                } else {
                    erroDeValidacao = true;
                }
            } else {
                qql.getAvaliacaoGeral().set3(0D);
            }

            if (!request.getParameter("AG4").equals("")) {
                temp = request.getParameter("AG4");
                temp = temp.replace(',', '.');
                if (UtilAdrs.verificaNumeroReal(temp)) {
                    if (Double.parseDouble(temp) < 0D || Double.parseDouble(temp) > 100D) {
                        erroDeValidacao = true;
                        qql.getAvaliacaoGeral().set4(0D);
                    } else {
                        qql.getAvaliacaoGeral().set4(Double.parseDouble(temp));
                    }
                } else {
                    erroDeValidacao = true;
                }
            } else {
                qql.getAvaliacaoGeral().set4(0D);
            }

            if (request.getParameter("AG5") != null) {
                qql.getAvaliacaoGeral().set5(Integer.parseInt(request.getParameter("AG5")));
            } else {
                qql.getAvaliacaoGeral().set5(0);
            }
            if (request.getParameter("AG6") != null) {
                qql.getAvaliacaoGeral().set6(Integer.parseInt(request.getParameter("AG6")));
            } else {
                qql.getAvaliacaoGeral().set6(0);
            }
            if (request.getParameter("AG7") != null) {
                qql.getAvaliacaoGeral().set7(Integer.parseInt(request.getParameter("AG7")));
            } else {
                qql.getAvaliacaoGeral().set7(0);
            }
            if (request.getParameter("AG8") != null) {
                qql.getAvaliacaoGeral().set8(Integer.parseInt(request.getParameter("AG8")));
            } else {
                qql.getAvaliacaoGeral().set8(0);
            }
            if (request.getParameter("AG9") != null) {
                qql.getAvaliacaoGeral().set9(Integer.parseInt(request.getParameter("AG9")));
            } else {
                qql.getAvaliacaoGeral().set9(0);
            }

            if (request.getParameter("AS1") != null) {
                qql.getAvaliacaoSanitaria().set1(Integer.parseInt(request.getParameter("AS1")));
            } else {
                qql.getAvaliacaoSanitaria().set1(0);
            }
            if (request.getParameter("AS2") != null) {
                qql.getAvaliacaoSanitaria().set2(Integer.parseInt(request.getParameter("AS2")));
            } else {
                qql.getAvaliacaoSanitaria().set2(0);
            }
            if (request.getParameter("AS3") != null) {
                qql.getAvaliacaoSanitaria().set3(Integer.parseInt(request.getParameter("AS3")));
            } else {
                qql.getAvaliacaoSanitaria().set3(0);
            }
            if (request.getParameter("AS4") != null) {
                qql.getAvaliacaoSanitaria().set4(Integer.parseInt(request.getParameter("AS4")));
            } else {
                qql.getAvaliacaoSanitaria().set4(0);
            }
            if (request.getParameter("AS5") != null) {
                qql.getAvaliacaoSanitaria().set5(Integer.parseInt(request.getParameter("AS5")));
            } else {
                qql.getAvaliacaoSanitaria().set5(0);
            }
            if (request.getParameter("AS6") != null) {
                qql.getAvaliacaoSanitaria().set6(Integer.parseInt(request.getParameter("AS6")));
            } else {
                qql.getAvaliacaoSanitaria().set6(0);
            }
            if (request.getParameter("AS7") != null) {
                qql.getAvaliacaoSanitaria().set7(Integer.parseInt(request.getParameter("AS7")));
            } else {
                qql.getAvaliacaoSanitaria().set7(0);
            }
            if (request.getParameter("AS8") != null) {
                qql.getAvaliacaoSanitaria().set8(Integer.parseInt(request.getParameter("AS8")));
            } else {
                qql.getAvaliacaoSanitaria().set8(0);
            }
            if (request.getParameter("AS9") != null) {
                qql.getAvaliacaoSanitaria().set9(Integer.parseInt(request.getParameter("AS9")));
            } else {
                qql.getAvaliacaoSanitaria().set9(0);
            }
            if (request.getParameter("AS10") != null) {
                qql.getAvaliacaoSanitaria().set10(Integer.parseInt(request.getParameter("AS10")));
            } else {
                qql.getAvaliacaoSanitaria().set10(0);
            }

            if (request.getParameter("AR1") != null) {
                qql.getAvaliacaoReprodutiva().set1(Integer.parseInt(request.getParameter("AR1")));
            } else {
                qql.getAvaliacaoReprodutiva().set1(0);
            }
            if (request.getParameter("AR2") != null) {
                qql.getAvaliacaoReprodutiva().set2(Integer.parseInt(request.getParameter("AR2")));
            } else {
                qql.getAvaliacaoReprodutiva().set2(0);
            }
            if (request.getParameter("AR3") != null) {
                qql.getAvaliacaoReprodutiva().set3(Integer.parseInt(request.getParameter("AR3")));
            } else {
                qql.getAvaliacaoReprodutiva().set3(0);
            }
            if (request.getParameter("AR4") != null) {
                qql.getAvaliacaoReprodutiva().set4(Integer.parseInt(request.getParameter("AR4")));
            } else {
                qql.getAvaliacaoReprodutiva().set4(0);
            }

            if (request.getParameter("AI1") != null) {
                qql.getAvaliacaoInstalacao().set1(Integer.parseInt(request.getParameter("AI1")));
            } else {
                qql.getAvaliacaoInstalacao().set1(0);
            }
            if (request.getParameter("AI2") != null) {
                qql.getAvaliacaoInstalacao().set2(Integer.parseInt(request.getParameter("AI2")));
            } else {
                qql.getAvaliacaoInstalacao().set2(0);
            }
            if (request.getParameter("AI3") != null) {
                qql.getAvaliacaoInstalacao().set3(Integer.parseInt(request.getParameter("AI3")));
            } else {
                qql.getAvaliacaoInstalacao().set3(0);
            }
            if (request.getParameter("AI4") != null) {
                qql.getAvaliacaoInstalacao().set4(Integer.parseInt(request.getParameter("AI4")));
            } else {
                qql.getAvaliacaoInstalacao().set4(0);
            }
            if (request.getParameter("AI5") != null) {
                qql.getAvaliacaoInstalacao().set5(Integer.parseInt(request.getParameter("AI5")));
            } else {
                qql.getAvaliacaoInstalacao().set5(0);
            }

            if (request.getParameter("AN1") != null) {
                qql.getAvaliacaoNutricional().set1(Integer.parseInt(request.getParameter("AN1")));
            } else {
                qql.getAvaliacaoNutricional().set1(0);
            }
            if (request.getParameter("AN2") != null) {
                qql.getAvaliacaoNutricional().set2(Integer.parseInt(request.getParameter("AN2")));
            } else {
                qql.getAvaliacaoNutricional().set2(0);
            }
            if (request.getParameter("AN3") != null) {
                qql.getAvaliacaoNutricional().set3(Integer.parseInt(request.getParameter("AN3")));
            } else {
                qql.getAvaliacaoNutricional().set3(0);
            }
            if (request.getParameter("AN4") != null) {
                qql.getAvaliacaoNutricional().set4(Integer.parseInt(request.getParameter("AN4")));
            } else {
                qql.getAvaliacaoNutricional().set4(0);
            }
            if (request.getParameter("AN5") != null) {
                qql.getAvaliacaoNutricional().set5(Integer.parseInt(request.getParameter("AN5")));
            } else {
                qql.getAvaliacaoNutricional().set5(0);
            }

            if (request.getParameter("AO1") != null) {
                qql.getAvaliacaoOrganizacional().set1(Integer.parseInt(request.getParameter("AO1")));
            } else {
                qql.getAvaliacaoOrganizacional().set1(0);
            }
            if (request.getParameter("AO2") != null) {
                qql.getAvaliacaoOrganizacional().set2(Integer.parseInt(request.getParameter("AO2")));
            } else {
                qql.getAvaliacaoOrganizacional().set2(0);
            }

            qql.setDataAtualizacao(v.getData());

            if (erroDeValidacao) {
                session.setAttribute("erro", Msg.NOT_NUMERIC);
                v.setQuestionarioQualitativo(qql);
                session.setAttribute("visitaAEditar", v);
                return "/adrs/adrs_add_quest_qualitativo.jsp";
            }

            v.setQuestionarioQualitativo(qql);
            session.setAttribute("visita", v);
            session.setAttribute("sucesso", Msg.QUESTIONNAIRE_TEMPORARILY_KEPT);
            return "/adrs/adrs_add_visita.jsp";
        }
    }
}
